package exo1_1;

public class CompteCourant extends CompteSansLimite{
	
	private double decouvertAutorise;
	
	public CompteCourant(String nom, int numero, double solde) {
		super(nom, numero, solde);
		this.decouvertAutorise = 0.0;
	}

	public CompteCourant(String nom, int numero, double solde,double decouvertAutorise) {
		super(nom, numero, solde);
		if(decouvertAutorise > 0)
			this.decouvertAutorise = 0;
		this.decouvertAutorise = decouvertAutorise;
	}
	
	@Override
	public void debiter(double montant) throws DebitException,FermeCompteAutomatique {
		if (this.solde - montant > this.decouvertAutorise) {
			this.solde -= montant;
		}
		else 
			throw new DebitException(montant,"Retrait de " + montant + " impossible : au dela du decouvert autorise : " + this.decouvertAutorise + "sur le compte courant");
	}
	
	public double getDecouvertAutorise() {
		return decouvertAutorise;
	}

	public void setDecouvertAutorise(double decouvertAutorise) {
		//modifier si le solde est positif
		if(this.solde > 0)
			this.decouvertAutorise = decouvertAutorise;
	}

	
	@Override
	public String getLigneSauvegardeCompte() {
		return super.getLigneSauvegardeCompte() + ";" + this.decouvertAutorise;
	}
	
	@Override
	public String toString() {
		return "CompteCourant [ nomDetenteur=" + nomDetenteur 
				+ " , numeroCompte="	+ numeroCompte 
				+ " , solde=" + solde 
				+ " , decouvertAutorise=" + decouvertAutorise
				+ " ]";
	}
	
	@Override
	public String getType(){
		return "Courant";
	}
}
